This appendix describes the TAE operations that are different for each host implementation of TAE. The systems currently supported are:
If the password is accepted by the system, system greeting messages are displayed.
If the terminal is other than a VT100 or VT52, the correct response is "OTHER" or a carriage return.
The following rules apply to the logon:
The command editor (Section 3.2.5) and the tutor editor (Section 3.4.1.5) describe additional features that assist the user in composing command lines.
To execute a VMS/DCL command under TAE, the format of the command line is "DCL" followed by the DCL command string.
The following rules apply to executing DCL commands under TAE:
EXAMPLES
An interactive DCL session is started and the editor is entered.
The DCL command "DIR" is executed. The "$" is optional.
A DCL dialogue is initiated.
Create a file named EDIT.PDF with contents:
procedure parm file body dcl $assign terminal sys$input dcl-nointerrupt $edit &file end-proc
The user then may use "EDIT filename" to get into the editor directly from the TAE.
Many TAE error messages contain a "VMS/RMS error code," a decimal number indicating the exact nature of the error.
To interpret a VMS/RMS error code, start an interactive DCL session and then use the EXIT command; for example, to display the text associated with the code 99838, use the following sequence:
TAE> DCL $ EXIT 99838
Magnitude of smallest non-zero constant: approximately 0.29E-38
Largest: approximately 1.7E38
A TAE library name under VMS is any valid directory specification, including logical names. The pre-defined libraries are:
Any VMS file specification may be used without quotation marks as a proc
name or as a parameter value. The exception is the DEC-10/DEC-20 form
"
SESSION. TSL
Users may occasionally want to run some of their PROCs in batch mode. Section 2.6 of this manual describes the standard method for directly submitting a batch job from the TAE command line. In cases where users want more control over the batch job, a file must be created and then manually submitted to the batch queue.
On VMS systems a TAE run may be submitted as a batch job by using the DCL command "SUBMIT". This requires that the user create a DCL command file for submission. There are two options for doing this. TAE may be used to automatically create the file or the user may manually create the file using a text editor. The following sections describe these two methods.
When submitting a batch job (discussed in Section 2.6), a file is created using the name of the proc but with type "JOB". This file contains TCL commands to create the proper environment and to execute the proc. Normally, the JOB file is deleted when the job terminates.
TAE defines a special queue named "NORUN" that causes the JOB file to be created but suppresses execution of the job. The NORUN queue allows the user to use the DCL SUBMIT command to run the job later or otherwise control the job's execution. Example:
TAE> proc|RUNTYPE=(BATCH, NORUN)| TAE> DCL submit proc.JOB/after=23:00
The name of the default batch queue is SYS$BATCH.
When the JOB file is created, TAE also creates a PAR file with the name of the PDF and type "JEN". This file is used to pass along values of global and local variables that were current when the JOB file was created. Neither the JOB nor the JEN file is deleted when the batch job terminates. The reason for this is that a NORUN job is likely to be run multiple times.
It is also possible to manually create a DCL command file to be submitted as a batch job to run TAE. Note the following information when creating a batch command file:
Here is an example DCL command file for running a TAE job in batch mode:
$! File: SHOWBATCH.COM $! Demonstrate VMS batch job to run TAE. $! Has site dependent details. May not run on all systems. $! $ SET DEFAULT [TGC.TEST] $ ASSIGN SYS$OUTPUT TAEJOBLOG $ ASSIGN NL: ALTSUBLOG $ DEFINE TAEACTMODE LOCAL $ SET NOVERIFY $ @TAE:TAESETUP ! Not needed if LOGIN.COM does this. $ TAETM BATCH ! Required SLOGON ! SLOGON must be explicit DISPLAY-ALL ! TCL commands may be used. MYPROC ! Run my own proc SHOW-LIB EXIT $EXIT
Details of the DCL command file tend to be site dependent. A good way to get started would be to use the RUNTYPE=(BATCH,NORUN) option to create a job file and then modify that file as needed for your own work.
When the Terminal Monitor (TM) creates the sub-process to be used for executing application programs, the SYS$INPUT for the process is directed to a mailbox; TM sends DCL commands to the sub-process through this mailbox. This source of DCL commands is always used by the sub-process (even if SYS$INPUT is subsequently re-assigned).
After the sub-process is created, TM sends a user mode assignment of SYS$INPUT to the sub-process. This assignment establishes SYS$INPUT for subsequently executed application programs. The target of this assignment depends upon the nature of the TAE session:
If a program that reads SYS$INPUT is to be executed as a TAE batch or asynchronous session, then TAE$APP_INPUT should be re-assigned to a text file containing the inputs for the program.
Before entering TAE, the shell symbol 'TERM' must be set to the terminal type. If the UNIX system manager has properly configured '/etc/ttytype' and the terminal is hard-wired, then the TERM symbol is set automatically. Otherwise, the value of 'TERM' should be set to the specific terminal type in '.profile'. For example, the following commands are needed in '.profile' for a VT100 terminal:
TERM=vt100; export TERM stty dec
If the shell of the TAE user is the C-shell (csh) rather than the Bourne shell (sh), there should be a '.login' file in the user's home directory. The entries in this file should perform functions similar to the '.profile' entries described previously. A sample of this file is the following:
setenv TERM vt100 stty dec setenv TAE root-of-the-TAE-tree source $TAEBIN/csh/taesetup setenv ULIB user-library
The 'DISPLAY' variable allows applications to communicate with the X server. For more information see the "TAE Plus Overview" and the "TAE Plus User Interface Developer's Guide".
The 'ULIB' specifies a default directory to search for application procs.
If the user wants to invoke the Bourne shell, 'sh', rather than 'csh' via that interactive USH command (see below), the following command should be included in '.login':
In UNIX, the "editing" keys may vary from user to user and terminal to terminal. Further, the editing keys are configurable with "stty". TAE users under UNIX, however, usually have the following editing keys:
(Note: on UNIX systems, TAB characters echo as a single space ' '. Also, the terminal 'type-ahead' feature does not work; the user should wait until prompted by TAE before entering a new command.)
Note: Use of the up- and down-arrow keys in command mode to recall previous TCL commands sometimes has the result of displaying the TAE prompt on a line far removed from the previous command. This can happen, for example, when a process has been invoked which clears the screen: The next TAE prompt is displayed at the top of the screen, although subsequent use of the up-arrow key may display the prompt (and the retrieved command) at the bottom of the screen.
This displacement can be prevented by placing in the user's terminal capability file the appropriate string for controlling horizontal movement of the screen cursor ("ch"). The file is /etc/termcap. For VT100 (and VT200) users, find the VT100 terminal definitions in this file and add "ch=e [%dC".
Help on determining the correct string for the user's site terminals can be obtained by examining the "nd" string for those terminals and also the "ch" strings for other terminals.
An executing proc may be interrupted by typing the attention sequence at the terminal. Under UNIX, the "inter" key assigned with stty may also be used. The attention sequence is normally set to CONTROL/C, but may be changed to some other control character by using the shell command 'stty'.
An interrupted proc may be resumed or aborted under BSD UNIX. In other systems such as the Standard 7th edition UNIX, the proc is always aborted and the user returns to TAE after leaving the proc interrupt mode.
The USH ("UNIX shell") command is a TCL command that permits the execution of shell commands from TAE. The command has the following forms:
In the first form, the shell-command text is executed by a spawned shell. In the second form, an interactive shell session is initiated by activating the shell identified by the SHELL environment symbol. If the TAE user wants to invoke the C-shell, 'csh', rather than 'sh' via the interactive USH command, the following command should be included in '.profile':
If the user wants to invoke the Bourne shell, 'sh', rather than 'csh' via that interactive USH command, the following command should be included in '.login':
Control is returned to TAE after the command is executed by a non-interactive shell, or when an end-of-file indicator (CONTROL/D) or the 'exit' command is encountered by an interactive shell.
If the attention sequence is typed while the shell is executing, the non-interactive shell terminates immediately and control returns to TM; an interactive shell aborts the current activity and prompts the user for the next command.
Upon termination of a shell command, TAE sets the $SKEY TCL global to an octal string representation of the status value returned by the shell. The $SFI global is set positive if the USH command was successful (as determined from this status value), and negative otherwise.
The following should be noted when executing the shell under TAE:
TAE's Monitor (TM) may be executed as a utility, where TM will execute one TCL command (or a proc) and terminate. The command to be executed is supplied on the host command line. For example:
If the TCL command string contains blanks, it must be quoted. The following UNIX command displays the contents of the PAR file, xyz.par:
When TM runs in this utility mode, there is no slogon.pdf execution and there is no greeting message. If you omit the TCL command string, TM will run in normal interactive mode, where you are prompted for each command.
This TAE feature is typically used by programmers who normally use the host command language, but who occasionally need utility support from TM.
For C programs running under UNIX or UNIX/TAE, the feature allows execution of a TCL command or proc in the following manner:
Many TAE error messages contain a decimal error number, the "host error code". These codes and their meanings are described in Section "INTRO(2)" in the most standard UNIX manuals.
Some UNIX systems do not provide notification of exceptional conditions like integer overflow, floating underflow, and floating overflow. An example of such a system is the UNIX implementation on the SUN workstation. Under such systems, TAE does not report exceptions caused by the evaluation of TCL expressions.
A TAE library name under UNIX is any valid directory specification. The specification may include shell-defined symbols prefixed with the "$" character; TAE substitutes the value of the shell symbol when the "$" character is encountered.
The standard, pre-defined library names are:
A UNIX file specification may be used (without quotation marks) as a proc name or as a parameter value. As a TAE default, file specifications are NOT translated to lowercase before access. Lower case forcing can be enabled via the ENABLE-FORCE_LOWER command.
TAE uses the following "extensions" to indicate the type of a file:
For example, the proc named "/usr/century/copy" corresponds to the file named "/usr/century/copy.pdf".
session.tsl
There is no batch queue management under TAE/UNIX. When a "batch job" is submitted, it is run immediately and asynchronously in the "background". The following is an example of a batch command.
The second argument in the RUNTYPE specifier is the batchqueue" name: NOHUP or NICE. NOHUP is the default queue name.
A job submitted to the queue NOHUP runs at a slightly lower priority than the interactive session; the job continues to execute even after user logout. A job under the queue NICE, on the other hand, runs at a much lower priority and is aborted by the system when the user logs out.
Under UNIX, batch jobs are processed immediately and asynchronously. However, batch jobs differ from asynchronous jobs in the following respects: